"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var accessEnum_1 = __importDefault(require("@/access/accessEnum"));
/**
 * 检查权限（判断当前登录用户是否具有某个权限）
 * @param loginUser 当前登录用户
 * @param needAccess 需要有的权限
 * @return boolean 有无权限
 */
var checkAccess = function (loginUser, needAccess) {
    var _a;
    if (needAccess === void 0) { needAccess = accessEnum_1.default.NOT_LOGIN; }
    // 获取当前用户的权限等级（默认未登录）
    var loginUserAccess = (_a = loginUser === null || loginUser === void 0 ? void 0 : loginUser.userRole) !== null && _a !== void 0 ? _a : accessEnum_1.default.NOT_LOGIN;
    // 如果目标资源需要未登录=》放行（默认就是未登录）
    if (needAccess === accessEnum_1.default.NOT_LOGIN) {
        return true;
    }
    // 如果目标资源需要用户权限
    if (needAccess === accessEnum_1.default.USER) {
        // 如果当前用户还没登录=》拒绝
        if (loginUserAccess === accessEnum_1.default.NOT_LOGIN) {
            return false;
        }
    }
    // 如果目标资源需要管理员权限
    if (needAccess === accessEnum_1.default.ADMIN) {
        // 如果当前用户权限不是管理员=》拒绝
        if (loginUserAccess !== accessEnum_1.default.ADMIN) {
            return false;
        }
    }
    return true;
};
exports.default = checkAccess;
